This is a demo program created with Face Value 1.0. The RSC-file was loaded into Face Value, some flags were set, and Face Value produced a LST file for GFA Basic 3.x. You are now watching the result. All of the code added afterwards to this LST-file by the user is listed below: Added in the procedure @user_rsc_interact(): -------------------------------------------- ~@win_open_dialog(2,about_dialog&,iconify_icon_1&) ~@win_open_dialog(5,modal&,iconify_icon_1&) ~@win_open_dialog(2,non_modal&,iconify_icon_1&) ~@win_open_dialog(3,toolbox&,iconify_icon_1&) ~@win_open_dialog(4,fvt_asci&,iconify_icon_1&) ~@win_open(" Standard window "," Info line...",simple_window%,backgrnd&, 800,800,16,0,0,0,800,800,iconify_icon_1&) ~@win_open(" Toolstrip window ","",toolstrip_window%,toolstrip&, 800,800,16,0,0,0,800,800,iconify_icon_1&) ~@win_open(" Toolbar window ","",toolbar_window%,toolbar&,800,800, 16,0,0,0,800,800,iconify_icon_1&) @win_close_all @win_close(window_array&(index&,0)) @win_iconify(-1) @win_iconify_all @win_uniconify(-1) @win_uniconify_all @win_cycle @rsc_set_new_menu(menu&) @rsc_set_new_menu(menu_2&) @desktop_new(desktop&,desklogo&) @desktop_restore a$=@fileselector$("Fileselector with title!:",program_path$,"",0) IF @alert_wind(1,alert_1&,"")=1 IF @alert_wind(1,alert_2&,"")=1 ~@alert_wind(1,alert_3&,"")=1 ENDIF ENDIF @progress_open(-1) FOR albert&=0 TO 1000 EXIT IF @progress_update(INT(albert&/10)) NEXT albert& @progress_close time&=@busy_open(TRUE) FOR a&=0 TO 4000 EXIT IF @busy_update(time&) NEXT a& @busy_close @open_text_window !****** Calls to procedures written for this demo, @change_font(index&) !****** see bottom of text. @aes_screen_lock FOR a&=0 TO 80 @mouse_busy(2) ~EVNT_TIMER(100) NEXT a& @mouse_form(-1) @aes_clear_buffers @aes_screen_unlock Changed/added in the procedure @user_rsc_var_init: -------------------------------------------------- DIM lstbx_radio_arr$(23) LET lstbx_radio_ndx&=24 LET lstbx_radio_var&=1 FOR a&=0 TO 23 lstbx_radio_arr$(a&)="Radio "+STR$(a&) NEXT a& DIM chcklist_arr$(23) DIM chcklist_arr!(23) LET chcklist_ndx&=24 FOR a&=0 TO 23 chcklist_arr$(a&)="Check "+STR$(a&) NEXT a& DIM list_menu_box_arr$(23) LET list_menu_box_ndx&=24 FOR a&=0 TO 23 list_menu_box_arr$(a&)="Menu "+STR$(a&) NEXT a& Added in the procedure procedure @user_keyb(): ---------------------------------------------- @win_keyb_scroll(handle&,ks&,key&) Added in the procedure @user_window_content(): ---------------------------------------------- LOCAL a&,b&,x&,y&,w&,h& SELECT userhandle& CASE 42 @win_get_workarea(index&,x&,y&,w&,h&) y&=0 b&=DIV(off_y&,window_array&(index&,29)) x&=SUB(window_array&(index&,28),off_x&) FOR a&=b& TO ADD(b&,DIV(h&,window_array&(index&,29))) TEXT x&,y&,txt$(a&) ADD y&,window_array&(index&,29) NEXT a& DEFAULT FOR a&=95 TO 395 STEP 100 CIRCLE 400-off_x&,400-off_y&,a& NEXT a& ENDSELECT Added in the procedure @user_on_open: ------------------------------------- LOCAL d% IF dimmed!=FALSE dimmed!=TRUE num_lines&=202 line_w&=90 DIM txt$(num_lines&) OPEN "I",#10,"EX.TXT" RECALL #10,txt$(),num_lines&,d% CLOSE #10 ENDIF Added in the procedure @user_on_exit: ------------------------------------- IF acc&=0 @vdi_unload_fonts ERASE txt$() ENDIF Added in the procedure @user_win_close_all: ------------------------------------------- FOR a&=0 TO max_number_windows& IF window_array&(a&,0)>0 IF window_array&(a&,1)=0 IF window_array&(a&,8)=42 @vdi_unload_fonts(window_array&(a&,22)) ENDIF ENDIF ENDIF NEXT a& Added in the function @user_win_close_ok(): ------------------------------------------- IF userhandle&=42 @vdi_unload_fonts(window_array&(index&,22)) ENDIF Written spesifically for this demo program: ------------------------------------------- PROCEDURE open_text_window LOCAL handle&,index&,totw&,toth&,scrlstep&,d& ~GRAF_HANDLE(w&,h&,d&,d&) totw&=MUL(w&,line_w&) toth&=MUL(h&,num_lines&) scrlstep&=h& handle&=@win_open(" System font at 10 points ","",menu_in_window%,window_menu&, totw&,toth&,scrlstep&,42,0,0,1200,1200,iconify_icon_1&) IF handle&>0 index&=@win_get_index(handle&) ~@vdi_load_fonts(window_array&(index&,22)) @vst_alignment(window_array&(index&,22),0,5) window_array&(index&,26)=1 window_array&(index&,27)=10 window_array&(index&,28)=w& window_array&(index&,29)=h& ENDIF RETURN PROCEDURE change_font(index&) LOCAL id&,size&,wcell&,hcell&,ret%,x&,y&,w&,h&,name$,handle& IF index&=-1 ~WIND_GET(0,10,handle&,d&,d&,d&) index&=@win_get_index(handle&) ENDIF id&=window_array&(index&,26) size&=window_array&(index&,27) wcell&=window_array&(index&,28) hcell&=window_array&(index&,29) ret%=@xfsl(window_array&(index&,22),"Choose Font",254,name$,id&,size&,wcell&,hcell&) IF ret%=1 @win_set_title(index&," "+name$+" "+STR$(size&)+" points ") window_array&(index&,26)=id& window_array&(index&,27)=size window_array&(index&,28)=wcell& window_array&(index&,29)=hcell& @win_change_size(index&,MUL(wcell&,num_lines&),MUL(hcell&,line_w&),hcell&,0) @win_get_workarea(index&,x&,y&,w&,h&) @win_send_redraw(index&,x&,y&,w&,h&) ENDIF RETURN